perm filename SCORE.LCS[UP,DOC] blob sn#376725 filedate 1978-08-26 generic text, type T, neo UTF8
****************  SCORE MANUAL ****************** 


     **********  SECTION 1  **********


The program 'SCORE' was  written by Leland Smith.   It  creates  note 
lists  for  'MUS10', the  PDP10  sound  generation  program  and  the 
'SAMSON BOX'.

'SCORE' accomodates several instruments (27) with 99  parameters  per
instrument.  To take full advantage of this program when  being  used
an initialization  file  must  be  read into the sound program giving 
values for musical  note  letters, etc.   The file 'INIT.LCS' has the 
necessary material.
	(MUS10, on the system, already has INIT.LCS in it.)

You must create the input file for SCORE with the  ET or SOS  editor.
(If SOS is used the file must first be copied to itself  with the /N
feature to remove the line numbers.)  The name of the edit file  can  
use  no  more than FIVE letters.   The  output of SCORE will use the 
same name but the  extension  .SCR  will be added.

Input  for each parameter must end with a semicolon.  Comments may be
typed  after the sign < .  Lines under 'EDIT', PRECEDE or 'INSERT' do
not need a  semicolon.   'RUN;'  will end the note list.  In general,
lines should include no more than 72 characters before comments. 

All lines must begin in column one.  All blank lines will be ignored.
Generally commas and = will be equivalent to blanks.


The first line should contain the name of instrument 1,  followed  by
its  begin  time  and  end time.   An instrument name cannot use more
than 5 characters.

The first begin time is always given in seconds.  If no  end time  is
given, a 'FINE' (the musical term for 'end') must  appear  at the end 
of one of the lists of items for  that instrument. (see Sec. 5.)  The 
end time may be set either in seconds or number of notes.

SECONDS:     If  only  2  numbers are typed, the 2nd will set the end
********     time, in seconds, for that instrument.

NUMBER OF NOTES:    If the end time is to be set in terms of the 
***************   total number of notes enter 3 numbers.  
	     1. Type the begin time; 2. a dummy number;  3. the total 
             number of notes for that instrument.

Examples:

     BUZZ 0,32;   Inst1 is BUZZ, BG time=0", end time=32".
		  (data for 'BUZZ' follows.) 

     ZAP   2,28;  Inst2, BG time=2", last note will start before 
	          time 28".	(data for 'ZAP' follows.)

     ZAP2  0  0  42;  Inst3 is ZAP2, BG time=0", end time=42 notes.
	              (data for 'ZAP2' follows.)

     HISS ; Inst4 begins at time 0". It ends when an item list ends.
	    (see pg5).
	    (data for 'HISS' follows.)

Note  that  when  the end time is given in seconds it means only that
the last note to be played by that instrument  will  begin  no  later
than  the  indicated end time.  It can often happen that the duration
of the last note can extend beyond the given total end time.  This is
almost certain to happen when random note durations are used.  If the
precise ending time is  crucial  it  must be carefully checked.   See
Section 9 re. 'CUTOFF'.


************* BASIC TIME and REAL TIME *****************

If  the  'TEMPO' feature (see below) is not used, BASIC TIME and REAL
TIME  will  always  be  the same.  The default value for TEMPO is 60,
i.e. a quarter note = 1 second of REAL TIME.) If however the TEMPO is
changed in any way the REAL TIME value of a quarter note will  change
accordingly.  However all BASIC TIME values remain unchanged by TEMPO
changes.  Thus it  is  easy  to  think of BASIC TIME seconds as being 
interchangeable with musical quarter notes while the REAL TIME  value
of a  BASIC TIME second will vary  with  the TEMPO.  All begin times,
durations, etc. are set in BASIC TIME.  Thus  if  an  instrument were
first listed as:   TOOT 24 122;   TOOT  would  begin after 24 quarter
notes of time. (i.e. on the 25th quarter note.)  No notes would begin
after  the  122nd  quarter  note  of  time.   If there are ritards or
accellerations then the REAL TIME values may be quite different.



****SECONDARY BEGIN TIMES FOR PREVIOUSLY ESTABLISHED INSTRUMENTS*****

Later changes in parameter data for an instrument must be preceded by
a line with  the  instrument  name  and  the  time at which that data 
change will take effect.  If the new begin time is  to be in seconds, 
only one number should appear.
	If the new data is to  start  on  a  specific  note,  type an
instrument number and the particular note number of  that  instrument
desired.  The instruments are numbered simply in  the  order in which
they appear  in  your  edit  file.   Thus  in  the  example above the
BUZZ is instrument 1, ZAP is number 2, ZAP2 is  number 3 and Hiss  is
instrument number 4.

Example:	BUZZ  17.2;   new data begins at time 17.2";
		--	(these lines will have the new
		--	 parameter information.)
		END ; 	End this data for BUZZ

   --OR--	BUZZ  3,13;  data  begins on note 13 of instrument 3.
			     (i.e. ZAP2)
		--
		--	
		END ; 	End this data for BUZZ

	If there are 2 numbers given and  the  1st  one  is zero that 
will be taken as the instrument number of the listed instrument .

		ZAP 0 22;   means start new data on note 22 of ZAP.
			  (assuming ZAP already is running)

	After the entries for each begin time are complete, the  word
'END' must appear before another instrument is dealt with. 'RUN;' may
replace 'END;' if there is no more data to come.  'RUN' must  be  the
last item of the note list.

Example:	BOPP  0 25;
		--
		--	
		END ; 	End this data for BOPP
		RUN ;		No more data. Run the score.









****---- SOME CONVENTIONS REGARDING PARAMETER NUMBERS ----****

In  specifying  the  parameters  for  your  instruments,  P3  is best
reserved for center frequency and P4 for amplitude. 
(See 'AMPFAC', sect. 12)



















RESTART:

Sometimes  it  may  be  desireable  to restart an instrument after an
extended rest.  If the exact duration of the rest is known it is best
simply  to  enter  the  rest  as  a  minus  number in P2 (see Sec.4).
However, if the duration of the rest is not easy to  predict  because
of  the  use of random selection or other reasons, the instrument may
be 'restarted'.   In this case the instrument name must  be  followed
by  the  word  'RESTART'  and  the then the 2 or 3 numbers  needed to
establish this new begin time and end time, as noted above.

When this feature is used this instrument name will be given the next
available number in the instrument list (up to 27) and any references
to it after the restart time must use this new number.
 
When  an  instrument  is  restarted it will pick up all the parameter
information given at the previous original starting of that instr.
(It is as if the 'DUPL' feature were used with the proper  instrument
number.)   Notice however  all  sequences  of  data  (such as NOTE or
RHYTHM  lists  or  MOVES)  will  begin  at  their  beginnings.    Any 
parameters which require new data may be entered before the word END.

Example:
		TOOT  0 20;  TOOT will play for at least 20"
		   - - -       (original parameter data)
		   - - -
		   - - - ;END;

		TOOT  RESTART 28 0 15; TOOT will restart at time 28"
		   - - -		 and play 15 more notes.
		   - - -    (any new parameter data)
		   - - - ;END;




     **********  SECTION 2  **********

If  data  for  a parameter is to remain the same for several notes it
should be entered as follows:

	P5 .73; 	P5 will be .73 until changed.
	P6 100.2;	Note that only 2 places beyond  the  decimal
			point will print in this manner. If for some
			reason more places are desired make  use  of
			quotes as described below.
	P3 CS5;		P3,  C#  of  the  5th octave.  (notes of the
			tempered scale used are from C0 (C1=lowest C 
			on piano keyboard) to B8 (1 oct.=highest B). 
			S=sharp, F=flat.*
	P7 "10*P5";	Any  string  surrounded  by  quotes  will  be
        P8 "1.0207";	literally reproduced in the score.
	P9 P6;		P9 will always have the same data as P6.   No
			quotes needed.  (In general, a 'P' number may
			be used in place of any data number, note  or
			'F' number.  See further comments re. the use
			of P in Section 7.)
	P8 F14;		F14  remains  until changed.   F0 through F99
			can  be  used.*     For  different  kinds  of 
			function names use quotes: ("FUZ")

	 *  ****Note that any F which appears in this context will be
                taken  as a function number.    The pitch class F may
                not appear as a single item unless it  is  surrounded
                by quotes.("F")   Also, DF, as single note, cannot be
		used because it  will  be confused with the code 'DF'
		which is used for the DUTY FACTOR feature.   The note
		DF may be used in a list of 'NOTES' or in quotes.

The highest parameter number used by the instrument  must  appear  in
the data list even if its input is to be a zero.

Example:

	P2 1;		*****  SEMICOLONS *****
	P3 C4; 		All this data could appear on one line.
			e.g.  P2 1; P3 C4; P5 100; P7 0; END; 
	P5 100;	      P4 will be zero
	P7 0;         P6 will also be zero
	END ;

** Possible range of numbers. ----  Because of internal peculiarities
in SCORE no numbers less than -9998 or  greater  than  999998  may be 
used.   However smaller or larger numbers may appear in quotes.
















******* Following is an example of a complete page of input. ******

  The use of the code words RHY, NOTES and TEMPO are explained later.

ASSUME THAT THE EDIT FILE NAME IS 'SCALE'.
	(THE OUTPUT WILL BE ON 'SCALE.SCR'.)

    SCALE *** This creates the score for a C-major scale with bass.
   (SINCE NOTHING APPEARS IN COLUMN 1, THE ABOVE WILL BE IGNORED.)


TOOT 0 1 8;	< BG time=0, inst 1 plays 8 notes.

P2 RHY/8/16//8//4//2; < Rhythm is 8th,  2 16ths,  2 8ths,  2 quarters,
                       half.  See section 4 and following for use
       		       of 'RHY', 'NOTES', etc.

P3 NOTES/C4/D/E/F/G/A/B/C5; < Scale goes up from middle C.

P4 .6 ; P5 F2; END;< Ampl(P4)=.6, envelope is sostenuto (F2).


CLAR 0 2 5; P2 RHY/4 X 4/2; < 4 quarters and 1 half.

P3 NOTES/C3/A/F/G/C;<Bass notes

P4 .45; P5 F3; END;< F3 will give semi-staccato.

TEMPO/ 96 ; < MM=96 

RUN;

     **********  SECTION 3  **********

***** RANDOM SELECTION *****

If random selection is desired, type at least  3  numbers  after  the
parameter  number.   The  first  number  will  be  a percentage (as 1
[=100%]  or  .76  [=76%]) and the next two will set the limits of the
random selection.   e.g.  '1 200,300' means 100% of the time a number
between  200  and 300 will be chosen. Several random selection ranges
may be typed for a single parameter, but


	%%%% only two lines of 72 characters each may be used. %%%%
       If a second line is needed, the first one must not end with ;

Care must be taken that the sum of the first numbers of each set of 3
is exactly 1 (=100%).

In  the following example for P5, 50% of the time a number between 20
and 100 will be chosen, 10% of the time between 0 and .7, 10% of  the
time  the  number  200, 25% of the time between 107 and 115 and 5% of
the time the number 1000.

P5  .5 20,100  .1 0,.7  .1 200,200  .25 107,115  .05 1000,1000;
	(71  spaces used.)

If  random  selection  of  tempered  scale notes is desired, use note
names instead of numbers.

Example:


P3  .5 C2,C3  .2 FS4,FS  .3 D6,F;< If no octave number is  given,  the
				  last listed applies.

	(Function numbers may not be dealt with in the above manner.)

Individual  literal  statements  may  be selected at random using the
following form.

	P7  .2 "P3*100"  .3 "440"  .5 "P3+POWER(P6,2)";
   <POWER is a function in the MUS10 program, =n1 to the power of n2.
	P5 .6 "F1"  .4 "F2" ;  <60%:40% random choice of functions.

The strings are surrounded by quotes  and  may  have  any  number  of
characters.  The  percentage numbers in the example above must add up
to 1 (100%) and and all such random data  must  appear  on  a  single
line.   Data consisting of ordinary numbers, or notes cannot be mixed
with literal strings.



















***** RANDOM DEVIATION OF ATTACK TIME (RANDOM TEMPO FACTOR) *****

The letters 'RD' followed by a  number  will  represent  the  maximum  
time  deviation,  +  or  -, of the note duration numbers found in P2.  
Note  that  the  deviation is in terms of BASIC TIME, hence  a  tempo  
change  will  not  produce a change in the range of deviation.  Check 
carefully the results of using 'RD'.

Example:	RD .06;< Up to 6/100" random tempo deviation.



***** RANDOM RESTS *****

Random rests  may be entered  by using the letters 'RR'.  Any  number
from 0 to 1. (0% to 100%) may be typed.

Example:	RR .15;

If .15 is  typed,  a  random  selection  of  15%  of the notes of that
instrument will have rests of durations set by P2. 



The  usual way to make use of the various special features of SCORE in
relation  to  either RR or RD is to precede it with a parameter number
which is not used by your instrument  and  then  follow  it  with  the 
desired code word, etc.   For example, to get  a  gradual  increase in 
random deviation enter the following:
 
	P24 RD MOVE/20 0 .5;    -- see Section 8 re. the MOVE feature.


With both RD and RR the number  following  can  be  replaced  with  a
parameter  name.   Then  that  parameter  may make use of many of the
other SCORE features.  (See SECTION 7)
 
*** When RR or RD are used without a preceding parameter number, only
a simple number or a P number may follow it!!!  *********************
     **********  SECTION 4  **********

********** SPECIAL CODE WORDS **********

	RHYTHM;		(RH) [acceptable minimum abbreviations]
	NOTES;		(NO)
	NUMBERS; 	(NU)
	FUNCTIONS;	(FU)
	RLIST;		(RL)   Sequential list of random num ranges.
	RNOTES;		(RN)   Sequential list of random note ranges.
	MOVE;		(MO)	    | The code word must immediately |
	MOVX;		(MX)	    | follow the parameter number.   |
	LITERAL;	(LI)	    |	Example:  P2 RHY/            |
	REPEAT;		(RE) OR (X)
	CUTOFF;		(CU)
	SUBR;






Most  non-random  aspects  of  musical input will be made in terms of
lists of events.  The code words RH, NO, NU, FU, LI are used for this
purpose. If you are using a list for input for P2 (RH or NU) and also
a list for P3 (NO or NU) and perhaps a list of functions (FU) in some
other parameter, in most cases you will want to have exactly the same
number of entries in all lists.  A point of possible confusion arises
with  the  use  of  rests!   All lists step forward for each new note
whether or not that "note" is a real sound or a silence.  Thus if the
3rd entry in a list of notes is /R/ (for "rest") there obviously must
be a duration given for that rest in P2's list.  It follows that if a
list of functions is given in P5, the 3rd entry will be a "dummy".

When typing in extended lists it is always a good  idea  to  organize
the  various  lists  according  to  some  simple  visual scheme.  For
example, if the music involved has bar lines, their presence  can  be
shown  by the use of 2 or 3 extra spaces at the appropriate points in
each list.  You will come to appreciate any possible  aids  to  proof
reading.

*********** RHY (FOR MUSICAL RHYTHMIC TERMINOLOGY) ***********

Entries under 'RHY' will always be in terms of the fractional part of
a  whole  note. Thus '4' represents a quarter note, '16' a 16th note,
'12' an 8th note triplet,  etc.   For  dotted  rhythms  add  dots  to
numbers.  Composites are entered by typing up to 5 numbers.  To enter
a double dotted 8th note, type /8../, a dotted half tied to the first
of a triplet, /2.,12/, etc.

If several notes in a row have the  same rhythm,  type  'VALUE  X  N'
(where 'VALUE' is up to 5 numbers representing a rhythmic duration, X
is for 'TIMES' and 'N' is the number of equal values).  Thus to repeat
15 dotted quarter notes, type /4. X 15/.

Complete rhythmic units must be separated by slashes. If no new entry
appears between slashes (or a slash and a semicolon) the  last  entry
will  be  repeated  for each slash.  Several lines may be used.  Each
line but the last must end with a slash.  The last  line  of  a  list
must  end  with  ;.  The  semicolon may serve the double purpose of a
slash and the end of the string of entries.

Example:	4///8 X 9/2/; < 3 quarters, 9 eighths, 2 half notes.

	-----------------------------------------------
Any group of varied rhythms may be repeated several times by entering
'REP'  or  'X' and N1,N2.   N1 will be the number of entries involved
and N2 will be the total number of times the group will occur.  If no
2nd number appears, N2=2.

Example:	4/8 X 5/2./REP 7,3/2; The group of 7 rhythms,
	     1 quarter, 5 eighths and a dotted half will play 3 times.

Here 'REP' and 'X' are interchangeable and  may  also  be  used  with
lists under 'NOTES','FUNC' and 'NUM'.

Type ';' to terminate a string of rhythmic  entries  before  listing
data for another parameter.

For  rests, the first number appearing must be negative. A whole note
rest plus a 16th rest would be entered as /-1,16/. Rests may also  be
entered with 'NOTES'.

If fewer rhythms are entered than are required to make up  the  whole
duration of a section, the series given will loop until some new data
is entered.  This will work the same way for any sequential lists  of
data.

xxx TEMPO xxx

The tempo  may be set for each instrument separately under P2, or for
all parts at once (the preferred method)  after  all  other  data  is
entered.  See SECTION 11 regarding use of TEMPO.


If the tempo is set under 'P2 RHY' use the following procedures.

Normally,  3 numbers will be given on each line. N1=duration N2=tempo
at start of dur. N3=tempo at end of dur.   Up to 30  changes  may  be
made  at  a  time.   The  tempo  may  be  set  in either of two ways.
Conventional metronome numbers may be used, (I.e.  mm=the  number  of
quarter notes per minute), or the tempo may be set in terms of 'tempo
factors'.  The 'tempo factor'  1  is  equivalent  to  mm=60.   'Tempo
factors'  must be less than 10, 'mm' numbers must be greater than 11.
If only one number is given after 'TEMPO' it will be taken as a fixed
tempo, not as a duration.

Example:	TEMPO/ 96 ; < mm=96 unless changed at some later time.

If  you  type 11 45 120, the tempo will shift from the first tempo to
the second tempo during the course of the  number  of  quarter  notes
given.  (The numbers 11 .75 2 will be taken as  'tempo  factors'  and
produce exactly  the same results.)  If you type two numbers, a third
number will be assumed as the same as the second number.

Example:P2 RHY/
        TEMPO/10  84 112/ <Changes from mm=84 to mm=112
		   	  in 10 quarter notes.
	5 112/            < Tempo will remain at 112 for 5 quarters.
	108;	          <  Tempo will stay at 108. must end with ';.
	4/8//4/16/etc.	  < Rhythm data must follow immediately.

(Note:   It  is probably more convenient to set the tempo changes for
all parts at once with the 'TEMPO' feature described on page 17.   If
this  is  done  it  is best to omit 'TEMPO' data under 'P2 RHY;'.  If
'TEMPO' is not mentioned, mm=60.)


     **********  SECTION 5  **********

************ NOTES (do not use with P2) *************

Use this code word to enter note letters.

When the file 'NOTES' has been read into the music  program  (already
present  in MUS10), the program will understand the tempered scale as
follows.    'C4'=middle C, 'C3'=1 octave below,(prints as  C/2)  'C2'
=two  octaves  below,(prints  C/4) 'C1'=three octaves below, 'C5'=one
octave  above,  'C6'=two  octaves  above,  etc.      'CS'=C#,'GS'=G#,
'AF'=Ab,  'EF'=Eb,  etc. If a rest is desired, type 'R' (with 'NOTES'
only).

Example:	P3 NOTES/
		C4/CS/R/D/DS//E// < Last 2 entries each play twice.
		F X 6/            < 6 F's.
		REP  7,4;   < Last 7 entries play a total of 4 times. 
				    ';' ends the list.

Each octave is taken as starting with the  note  C.    Normally,  the
octave  number,  once  given,  will  stick  until a new octave number
appears.  Thus, to move a 1/2 step B  to  C,  /B3/C4/B3/C4/  must  be
typed, whereas /E4/F/E/F/ also gives 1/2 steps.

A  different, "PROXIMITY", mode may be used by typing 'P' in front of
the 1st note entered.  This mode automatically chooses the  following
octave numbers so as to produce the smallest intervals between notes.
/P B3/C/B/C/ gives 1/2 steps.

In  this  mode,  skips  up or down of greater than a perfect 4th must
include an octave number.

PROXIMITY mode may be left by typing 'O' (for ordinary) in front of a
note and its octave number.  /O B3/C/ gives a major 7th.


If no duration is earlier specified (see pg 1) the  list  in  'NOTES'
must  end  with  the  word  'FINE'.  'FINE' may be used with 'NOTES',
'NUM', 'RHY' or 'FUNC'.

Example:	P3 NOTES/A5/G/FS4/D/B3/FINE;

		'FINE' ends NOTES (and sets duration at that point.)

         ******************** CHORDS *************************

To indicate  chords  the note  names  should be  separated  by  colons
instead of slashes.  The slashes  then will still indicate the  bounds
of each rhythmic unit.  The  various repeat features work with  chords
as if they were individual notes.  Chords may be included in 'MOTIVES'
(see Sec. 7.)

Example:  The note sequence desired is C sharp, a chord of D, F, A,
          and then the chord is repeated.

           CLAR  ;
           P3 NOTES/ CS4/ D:F:A// . .
           P2 RHY/8//4/ . .
           . . . .
           . . . .
           . . . .
           END;

      The 'SCORE' printout for SAMBOX use will appear as follows:

    CLAR   0  .5  CS  . . . . . . ;

    CLAR   .5 .5  D   . . . . . . ;
    CLAR   .5 .5  F   . . . . . . ;
    CLAR   .5 .5  A   . . . . . . ;

    CLAR   1  1   D   . . . . . . ;
    CLAR   1  1   F   . . . . . . ;
    CLAR   1  1   A   . . . . . . ;


≡≡≡≡ THIS NEXT DOES NOT APPLY TO SAMBOX OUTPUT. ≡≡≡≡≡
Under special circumstances chords may be entered in 'NOTES'.  It must
be remembered that in its current form 'MUS10' does not allow a single
instrument to play more than  one note at a  time.  With  the  'SCORE'  
program it is possible  to  get  around  this restriction because each
time an "overlap" is sensed the name of  the  instrument  involved  is
altered  by  raising  the  last  letter  in  the  name one step up the
alphabet.   Thus if your instrument name were ZIPA and an overlap were
detected the next appearence of that  instrument  would  be  under the
name ZIPB, etc.  There is a  special program (DUPINS) for the  purpose
of making duplicate instrument definitions with an alphabetical change
on the last letter of each name.  For the use of 'DUPINS' see below.  

      For MUS10 an instrument name such as CLARA should be used.
      The 'SCORE' printout for MUS10 use from the above example
      of input will appear as follows:

    CLARA  0  .5  CS  . . . . . . ;

    CLARA  .5 .5  D   . . . . . . ;
    CLARB  .5 .5  F   . . . . . . ;
    CLARC  .5 .5  A   . . . . . . ;

    CLARA  1  1   D   . . . . . . ;
    CLARB  1  1   F   . . . . . . ;
    CLARC  1  1   A   . . . . . . ;



A  separate  program, 'DUPINS', exists  to facilitate the duplication of
instrument   definitions   in  edit  files.   DUPINS  expects  that  the
word INSTRUMENT appears at the beginning of a line and the word END also
comes at the beginning of a line.  (Be careful that if  the  word END is
used  anywhere else inside of an instrument  that  it does not appear at
the start of a line.)  

DUPINS  will  ask  you how many duplicates of a given instrument you may 
want.  The duplicates will have names wherein  the  last letter advances
alphabetically.  Thus the limit is 25 duplicates of an instrument  whose
name  ends  with  the  letter A.   Example:  INSTRUMENT BLURB duplicated 
three times would produce BLURC, BLURD and BLURE in addition to BLURB.


************* LIT (do not use with P2) *************

******  When using the code word LIT the literal material need not be 
surrounded  by  quotes.   However  if  quotes  are  not  used special
characters must be used to avoid  confusion in the role of  "/",  "," 
and ";" in  your lists.   If quotes are not used, % must used where a 
literal / is desired  to  be  printed,  a ! must  be  used where , is 
desired, ? must be used where a ; is desired  and  & must  replace ".
Clearly it is simpler to use the quotes with these various characters
unless the quote sign itself is required in a string of characters.

	% = /	    ! = ,	? = ;      & = "     # = <

If literal data is surrounded by quotes  no  special  characters  are
needed.   Entries must be separated by  slashes.   Extra slashes will 
repeat items, but 'X' or 'REP' may not be used for repeats.   
However, as with  'NOTES', 'RHY',  'NUM'  and  'FUNC',  any series of 
entries  will loop until changed at  some  later  begin  time.    The
series  of  literal items must be ended with a ';'.

Example:	P12 LIT/
		"P4*2" ///"P4*3"/"P5/3"/ < First item will  be  used  3
					 times.
		"P11+5"/",-52"; < A negative value with nothing in front
	           of it must be preceded by a comma in any literal data.

   The same input could appear without quotes as follows:
         	P12 LIT/P4*2///P4*3/P5%3/P11+5/!-52;

	(/"A"// or /"A"/; will cause the 'A' to appear twice.)


*************** NUM (use with any parameter) *************

This  works exactly the same way as 'NOTES' except that numbers only!
may be typed.   'NUM' is useful in setting strings of note  durations
or amplitudes without regard to musical terminology. Lists of numbers
may also include calls  on  other  parameters  by  entering Pn in the 
list.

Example:	P5 NUM/100/200//300 X 10/452;   ';' ends the list.
         	P12 NUM/1000/P7//2000/P5 X 6;

		  In the above example, P12 will print the contents
		  of P7 for the 2nd and 3rd notes.  The last 6 notes
		  will print the contents of P5.
 

**********  FUNC (do not use with P2)  **********

This  works  as above.  Functions 1 through 15 are available. Do not!
use 'F' with the function numbers in this case only!

Example:  P7 FUNC/3//4 X 4/5/REP 3,2; <=F3,F3,F4,F4,F4,F4,F5,F4,F4,F5.
				      ';' ends the list.

     **********  SECTION 6  **********


***** RLIST (RANDOM LIST OF PAIRS OF NUMBERS) *****

With RLIST a sequential list of random selection ranges  of  ordinary
numbers may be entered.  The list is terminated by a ';'.

  ***** The repeat of a unit by means of a slash may be used but
  REP must !!not!! used.  'Motives' are possible. (See Sec.7)

	EXAMPLE:  P4 RLIST/50,200//1000,1000/700,900;


***** RNOTES (RANDOM LIST OF PAIRS OF NOTES) *****

RNOTES has the same features as above but using note  names  for  the
ranges.

	EXAMPLE:  P3 RNOTES/C4,CS/E,GS//B,F5/D3,D;



***** REP or X (N1,N2,N3);  ***** 

'REP' or 'X' is used in conjunction with a parameter number to repeat
any  previously  entered  data  into  the  current parameter.  In the
following examples assume that 'ZAP' is instrument 2.

If  no number follows 'REP', data of the same parameter number of the
previous instrument will be repeated.  If one number is used, it will
be a parameter  number  of  the  previous  instrument.   If 2 numbers
appear, the second will be an instrument number.   A 3rd number  will
cause  the  data to be repeated for all following instruments through
the number given.

Example:ZAP  ;
	P2 REP; < P2 of ZAP will have same data as P2 of previous inst.
	P5 REP 7; <	Repeats data of P7, previous inst.
	P8 REP 5,2; <	Repeats  data  of  P5, inst 2.
			(i.e. ZAP.  See below re.';')
	P9 X 4,1 5; <	P4,  inst1,  repeats in this and all insts up
			to inst 5.
	P10 X 6,3; <	Repeats P6 data,  inst3 
			(This data must already have appeared above.)

>>>>>> N.B. Use REP with MOVE data only if the  begin  times  of  the
instruments   involved   are  the  same.    See  Sec. 10   for  other
information regarding 'REP'. (Also see 'DUPL', Sec. 10.)

To repeat  data  from  one  parameter  to  another  within  a  single
instrument the semicolon (or slash) alone may be used.

Example:	P12 1.23; <   No other data may appear between this and
                	    the next line.
		P7  ; <  Repeats  data of P12. Be sure a space precedes
     		       ';'.

When using any kind of random selection 'REP' will repeat the  limits
of selection only, not the particular choices made.
To repeat the choices themselves use '-9999.PN' (See Sec. 2).


Example:	P4  1 10,100; < P4 chooses a number between 10 and 100.
		P12 P4;      <The choice of P4 will also appear in P12.

     **********  SECTION 7  **********

*********** MOTIVIC REPEATS [ ( ), @, $, - ] **********


When any motivic group of items appearing in RHY, NUM,  NOTES,  FUNC,
LIT  or  DF  is  to be used several times the group may be associated
with any letter of the alphabet by surrounding  it  with  parentheses
The  identifying  letter  must  precede  the left parenthesis and the
right parenthesis must follow the last item  to be  included  in  the
group.

Example:	P3 NOTES/A4/ Q (BF/D5/F/D )/ G4/ etc.

From this point on the motive  Bb-D-F-D  may  be  entered  by  simply
typing / @Q /.    The '@' sign must always  immediately  precede  the
identifying  letter.   When  '@'  is  used  only  a single letter may
appear.   However  the  various  repeat  features  may   be   applied
thereafter.  / @Q/REP 2/ would create /BF4/D5/F/D/F/D/, i.e. the last
two items of 'Q' would be repeated.  

In the  above  example  @Q  could  also  be  used  in  any  following
instrument to enter that sequence of notes.


It is possible to nest motives.  In  the  following 'X' will  include
'Q'.

Example:	/ X (E4/ @Q / E )/	

>>>>>>>> N.B. In this case the octave (5) number of the last item  of
the  Q  motive will never carry over into the next note.  Rather, the
last actual number given (4) will hold until changed.

In the following, motive 'J' will include motives 'M' and 'K'.

	/J( M( E4/G/A )/ B/K( BF/C5/D )/ F )/
	  |  |________|     |_________|    |
	  |________________________________|

N.B. No more than 2! left parentheses may be open at one  time.   The
right  parentheses always will close off the nearest left parenthesis
which is still open.

 	XXXXXXXX   TRANSPOSITION   XXXXXXXXXXX
   (NONE of these tranformations may be used with 'LIT'!)

MOTIVIC TRANSFORMATIONS may be created in several ways.  A number may
be added after the identifier.  /@Q 12/, /@Q -5/, /@T .3/
If the motive is appearing in NOTES the  number  will  refer  to  the
number  of 1/2 steps transposition to be made.  In the 1st case above
the notes of Q would now appear  8va  higher;  in  the  2nd  case,  a
perfect 4th down (-5 1/2 steps.)

	XXXXXXXXX  AUGMENTATION, DIMINUTION  XXXXXXXXX

If the motive appears in RHYTHM, NUMBERS or DF, the added number will
become a multiplier.  If 'T' were established as follows:

     P7 NUM/ T(111/ 222 / 300 ) ; 

/@T .3/ would produce / 33.3 / 66.6 / 100 /.

***** Note that any multiplier in the time or  rhythmic  domain  will
simply  multiply the note durations.  Thus a 3 would make all notes 3
times longer, .333 would make them 1/3 as long.
******** DO NOT USE '@Xn' WITH 'LIT', 'RLIST' OR 'RNOT'**************


	XXXXXXXXXX  RETROGRADE MOTION  XXXXXXXXXX

Motives may be used in retrograde motion by simply typing '-'  before
the  identifier.   /@-Q/ causes motive Q to be played backwards.
******** DO NOT USE '@-' WITH 'LIT', 'RLIST' OR 'RNOT'***************

	XXXXXXXXXX  INVERSION  XXXXXXXXXXX

When using NOTES it is possible to invert motives  by  inserting  '$'
before  the  identifier.    /@$Q/  will  give  an  exact  intervallic
inversion of motive Q.  If Q  included  the  notes  /C4/D/EF/,  /@$Q/
would produce /C4/BF3/A/.  Note that if the retrograde is used at the
same time as '$', the inversion will turn on the  last  note  of  the
original motive. Thus /@$-Q/ produces /EF4/FF/GF/ (i.e. Eb,Fb,Gb).
Note that the intervals of chords will  invert just as melodic lines.
A  C - E - G chord will invert to C - A flat - F.

Transposition may be done at the same time!  /@$-Q -6/ means  that  Q
will  be inverted, played backwards and the 1st note to be heard will
be transposed down 6 half steps (a tritone) from the  original.  Thus
the notes will be /A3/BF/C4/.
******** DO NOT USE '@$' WITH 'LIT', 'RLIST' OR 'RNOT'***************

(CURIOUS RESULTS ARE PRODUCED WHEN INVERSION IS APPLIED  TO  RHYTHMIC
MOTIVES.   THE  FIRST REAL TIME VALUE SERVES AS A PIVOT AND ALL OTHER
REAL TIME VALUES ARE PRODUCED BY  ADDING  THE  PIVOTAL  VALUE TO  THE
DIFFERENCE BETWEEN THAT VALUE AND EACH OTHER VALUE.  IF THE REAL TIME
VALUES WERE .5 .25 .1 1 1.25 THEY WOULD INVERT TO .5  .75  .9  0  AND
-.25.   THUS  THE  LAST ONE WOULD BECOME A REST AND THE ONE BEFORE IT
WOULD HAVE NO TIME VALUE.  THIS SEEMS TO HAVE LIMITED USEFULNESS!)

*********************************************************************
*********************************************************************
******** DO NOT USE '@-' OR '@$' WITH 'LIT', 'RLIST' OR 'RNOT'*******
*********************************************************************
*********************************************************************





     XXXXXXXXXXXXXX SECONDARY PARAMETER REFERENCES XXXXXXXXXXXXXXX

In most instances a parameter name can be used  in  places  where  an
ordinary number, note name or function name might be expected. When a
parameter name is used in this manner whatever the  current  contents
of the  given  parameter  may  be will be used as the input.  Forward
references are not possible  so,  since  the  parameters  are  always
processed  in  order,  care must be taken that the proper information
will be resident in the parameters in question.  Always be sure  that
these  secondary  parameters  are "dummies" which are not used by the
instrument involved.  With this system  many  different  features  of
SCORE may be used to get values for a single parameter.

Examples:
	P3 NOTES/C4/D/E/P15/REP 4,10;
	P15 .33 F4,F .33 F3,F  .34 F5,F; <P15 not used in instrument

Here a four note scale will play a total of 10 times.  Each time when
the 4th note is arrived at the program will go to get its information
fromt P15.  Thus while the first three notes will always  be  in  the
same  octave,  the  4th  note  will  be an F in any of three possible
octaves.

	P6 NUM/ 7X20/ 90X20/ 13X20; <P6 considered as a "dummy"
	P7  1;  < also a "dummy"
	P8  .8 P6,P6  .2 P7,P7; <P8 is used in your instrument

P6 and P7 are dummy parameters, that is for  this  example  they  are
considered to be unused by your instrument.  For each note there will
be an 80% chance of getting P6 and a 20% chance of getting  P7.  (The
format of the random selection in P8 is exactly the same as if simple
numbers were used.) Thus in the first 20 notes, 80%  of  the  time  7
will  be  chosen, 20% of the time 1 will be chosen.  In the second 20
notes the 80% choice will be the number 90, etc.

	P3 MOV/20 P10,1000; <this parameter will be used by instrument
	P10 NUM/ 100/ 1000; <this sequence constantly recycles
 
Here,  every  other  note  will have a 1000 in P3.  The first note of
each two will have in P3 a number gradually rising from 100 to  1000.
(Note  that a parameter CANNOT be given in place of the time value of
the MOVE, i.e. the 20.)
 
Since  there  can  be  no  forward  reference  to a parameter serious
problems can occur with the above example.   The  first  time  P3  is
computed  there  will  be a zero in P10, because P10 has not yet been
computed.  This problem may be dealt with by causing the  first  note
for  the  given  instrument  to  be a rest or a note of zero duration
(which becomes a zero duration rest.) This way P10 will  be  "primed"
as  it  were  and the first real note will not get a zero in P3.  The
example would better appear:
 
	P2 NUM/ 0/ .2/ .1/ - - etc.
	P3 MOV/20 P10,1000;
	P10 NUM/ 100/ 1000;
 
A parameter name can be used in place of a number following RD, RR or
DF (Random Deviation, Random Rests, Duty Factor.)  These 3 codes  are
always  processed  AFTER  all  the  ordinary parameters so there will
never be a question of forward references to worry about.

 
A  great many variations in the use of this feature are possible.  If
there is any doubt about the outcome always run some simple test case
and  check  the results carefully to make sure the crucial parameters
are getting reasonable data.
     **********  SECTION 8  **********

****************  MOVE, MOVX, MOVP  *******************

MOVE may be used for gradual changes from one  number  (or  note)  to
another or from one range of random selection to another.  MOVE works
on a straight line basis.   Use  MOVX  if  an  exponential  curve  is
desired.    (≡≡≡≡≡≡≡ RESTRICTION ≡≡≡≡≡≡≡≡  The MOVE features may  not
		be used in parameters which are  established  under a
		a secondary begin time of an instrument  in  terms of
		a specific number of notes.  MOVE depends on  knowing
		its begin time in  basic seconds.  See SECTION 1  re.
		secondary begin times of instruments.)

If no random element is involved, 3 to 1 numbers may be typed on each
line.

Example:   P3 MOVE/3 C4,D5; < In 3" moves from C4 to D5.
	   			';' ends MOVE. P3 will stay at D5.
	   P4 MOVX/12 100,1000/ < In 12",  moves exponentially from 10
				to 1000.
	   10 1000,70; < In 10",  from 1000 to 70.  ';' Ends list.
				P4 stays at 70.
	   P5 MOVE/15 1000/ < Stays at 1000 for 15".
	   2500; <  Holds at 2500 until end or later change.

For changing random ranges type 5 numbers on each line.   You  should
type  a  duration  (in  seconds),  a lower and upper limit for random
selection at the beginning of the time and a lower  and  upper  limit
for random selection at the end of the duration given.

When ALL the durations given have passed, the parameter will continue
to  choose  from  the  last selection range.  

IF A SLASH OR SEMICOLON APPEARS WITH NO NEW DATA BETWEEN IT  AND  THE
LAST ONE, THE DATA LAST GIVEN WILL BE REPEATED.

	P7 MOVE/10  100 2000/ / 5 2000 50;  
		THE 100 TO 2000 MOVE WILL OCCUR TWICE.


EXAMPLE:  If you should want the amplitude to gradually increase from
any number between 200 and 300 up to the number 1200 over a period of
15 seconds and then return to the range  300,350  over  the  next  10
seconds type the following:

	P4 MOVE/   < Upper limit moves from 300 to 1200, lower  from
		     200 to 1200.
	15 200,300 1200,1200/
	10 1200,1200 300,350/ < Now moves to new limits.
				';' will end the list.

N.B.  You may not! mix the 2 types of entries used with MOVE or MOVX.
      If any units contain 5 numbers, they all must!

MOVE  (but  not!  MOVX!!) may also be used  with 'RR'.   In this case
only 3 numbers may be used in each MOVE unit.    To  gradually  shift
from  no  rests to 80% rests in 20 seconds, then back to 20% rests in
the next 13 seconds type:

Example:	RR MOVE/20 0 .8 /13 .8 .2; 

Note that the first time value in MOVE will start from whatever begin
time  was  last  given  for  that  instrument   regardless   of   the
instrument's original begin time.

Example:	ZAP   23.4; < Next data begins at time 23.4"
		P6 MOVE/
		12 100 350; <P6 moves from 100 to 350 during time 23.4
			    to 35.4".  ';' will end the list.

***** MOVP **********

This is a rather special form of MOVE which allows for a gradual shift
from the selection of one parameter, or  one  group  of parameters, to
another parameter or group.

	P12 MOVP/20  7,8.9   8,10.9;

	This will cause a moving random selection within the given
	limits over a period of 20 seconds.  At the beginning P12
	will use whatever is in P7 or P8.  As time progresses the
	possibility of choosing P7 becomes less and less until at
	time 20 only P8, P9 or P10 will be chosen.


******* WARNING !!!!  ********

Problems (round-off errors) can occur with MOVE begin  times  if  the
instrument  does  not have its first begin time at time 0.  If a rest
is needed as the first note for an instrument using MOVE it  is  best
to put it into P2 and then have the instrument start at time 0.

Be sure to proof read carefully.


********** CONTINUATION *********
 
The mode of parameter input may be altered within a single parameter
by means of 'CONTINUE'.  This word, or simply 'CO' may be typed where
a new parameter number is expected.  This will 'continue' the previous 
parameter up until the next semicolon.  This will often be useful when
used with literals.   Example:
 
	P5 1000; CO "*"; CO MOVX/10 1 3; P6 F7;
 
In this case SCORE will print out the following:
 
  	1000  *  n  F7
 
'n'  will be a number between 1 and 3 as produced by the MOVX.
 
  CAUTION!!  When using CONTINUE all the parameters must appear in 
	     ascending order.  Internally, each CONTINUE advances the 
	     parameter counter, so that in the example above the first 
	     'CO' has become P6, the second one has become P7 and then 
	     what is listed as P6 becomes P8.  However the MUS10 program
	     will treat this input in terms of the actual parameter
	     numbers typed.

	     Also if one parameter is to refer to some other parameter 
	     you should use quotes.  Type, for example,   P8 "P7"; 
	     NOT  P8 P7; if you want P8 to use the same data as P7.  
	     (This only applies if CONTINUE has previously appeared.)
     **********  SECTION 9  **********

********************* FUNCTIONS AND SCORE SUBROUTINES ****************

There are two ways to add special program routines to SCORE note lists.
The first way is to write functions in the ALGOL-like language which is
built into the MUS10 program.  The second way is to add a user-written
FORTRAN subroutine to the SCORE program.

*********** MUSIC PROGRAM FUNCTION ROUTINES ********************

      ≡≡≡≡≡≡ FOR MUS10 OUTPUT ONLY ≡≡≡≡≡
  Some  other   examples  of   music   program  functions   appear   in
  USEMUS.DOC[DOC,LCS] and MUSIC.DOC[DOC,LCS].   The rules involved  are
  those of  the simpler  applications of  the 'SAIL'  language.   These
  functions can be written in separate files, independant of the  SCORE
  program.

  For the following purposes be sure that the function appears in  each
  parameter list AFTER! all parameters involved have been  established.
  The word "PRECEDE;" causes all  text following, up to the  appearance
  of the * in column  one, to be found before  the word "PLAY;" in  the
  score.  (See section 11.)

PRECEDE;
VARIABLE W,Y,Q;   <***** SETS UP NEEDED VARIABLES 
Q←W←Y←0;	  <***** INITIALIZE VARIABLES
FUNCTION RMBR;
BEGIN 
ARRAY Z(200); <** INTERNAL STORAGE ARRAY [1ST LOC. IS Z(0)]
IF P1< 3 THEN BEGIN	<DO NEXT LINES ONLY DURING FIRST 3"
  IF Q=P3 THEN P3←P3*2; <IF SAME NOTE TWICE, SHIFT 1 OCTAVE UP
  Z(W)←P3; W=W+1; Q←P3; <STORE THE PITCH, UPDATE COUNTER
   RETURN;              <GO BACK TO MAIN PROGRAM
   END;
P3←Z(Y)/3;    <NOW IN INST.2   PUT STORED PITCH INTO P3
Y=Y+1;        <UPDATE INST.2'S COUNTER
END;
*
TOOT  0 2;
P2 .15;
P3 1 C4 B7;   <TOOT WILL HAVE 2" OF RANDOM NOTES
P4 1000;
P5 F1;
P6 F3;
P7 "RMBR";    <THE PITCHES WILL BE STORED BY FUNCTION RMBR
END;
CLAR 3 5;
DUPL 1;	      <CLAR BEGINS AT TIME 3"
P6 "RMBR";    <RMBR PUTS BACK PITCHES INTO P3
P7 F4;
END;

The following example sets up a function which can be used to  generate
any form of equal tempered scale.  The 3 arguments to the function, BF,
SN and OD can be given as fixed numbers or as parameter numbers.

PRECEDE;
COMMENT: FUNCTION MICRO(BASE_FREQ, STEP_NUM, OCT_DIV)
	OCT_DIV = NUMBER OF EQUAL DIVISIONS OF THE OCTAVE.;
	
FUNCTION MICRO(BF, SN, OD);
BEGIN
BF ← BF*EXP(SN/OD * ALOG(2.)); 
  COMMENT: the above gives BF times 2 to the power of (SN/OD);
PRINT BF;    COMMENT: this prints the frequency in Hertz.
END;
*      This ends the insert.  The * will not appear in the score.
TOOT  ;
P2 RH/15X15/4;   <using 15th note rhythms.
P3 C4;		<microtone scale will start on middle C.
P4 1000;
P5 F1;
P6 F3;  <next parameter gives the steps of the scale.
P7 NUM/0/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/FINE;
P8 15;   < the octave is divided into 15 equal-tempered parts.
P9 "MICRO(P3,P7,P8)";
END;

*****  SUBN,SUBR(Subroutine,Numbers),  SUBL,(Subroutine,Letters)  ****

The second way to add special features  to  SCORE  is  to add FORTRAN
subroutines to the main body of the 'SCORE' program to set values for 
P2 through P99.   A  subroutine may be called from several  different
parameters.  The codes 'SUBL', 'SUBN'(or SUBR) determine  the form of
the output for the calling parameter.  The heading for the subroutine
must be exactly as follows:

	SUBROUTINE SUBR
	COMMON /P/P(1) /PL/PL(1) /INS/ INST(27),BG(60)
	COMMON INUM,IPAR,CNT(27),BT,IREST,DF,DUR(27)
C   INST=INSTRUMENT NAME,  BG=BEGIN TIME OF EACH INST.
C   INUM=INST#  IPAR=PARAM#  
C   BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
C   IF IREST IS <0, THAT NOTE WILL BE A REST.  
C   INST=INST. NAME,  BG=INSTS' BEGIN TIMES.
C   NOTE #S IN SUBROUTINE: (1-108)  C4=49  FS4=55  B4=60  C5=61  ETC.
C   F0=200  F99=299 (LIMIT IS F0-F99!)  'R'(REST)=199

'CNT'  is  the  note number for each instrument.  'BT' is the 'basic'
begin time (i.e. uneffected by 'TEMPO' or 'TF') of each note.
To call the subroutine from any parameter type:	P4 SUBN; P7 SUBL; etc.
If  the last parameter of an instrument calls the subroutine, all the
other parameters may be reset in relation to each other  in  any  way
seen fit.  (This is not true when a duty factor (DF) is involved.  If
the duty factor is used or changed in the  subroutine  the  parameter
used to call the subroutine must came LATER.)
The PL array is used to show the type of printout  desired  for  each
parameter.   If  there is to be no change from the original state, PL
may be ignored.  If you wish to change 'NOTES' input to a number, set
PL(n) [n is the param. number] to 1.

		P(3)=445.
		PL(3)=1.	If P3 had been printing 'NOTES' data,
				at  this  point  the number 445 would
				print.

To cause the printout of a tempered scale note  name  or  a  function
number set PL(n) to 2.

		P(3)=20.	The original mode for P3 was numbers.
		PL(3)=2.	Printout will be G/4.

		P(7)=89.
		PL(7)=2.	P7 will print as F4.

To make the change to a 5 character literal printout, change PL(N) to
3.
		P(5)='CS/4'	Regardless of the original form of P5
		PL(5)=3.	It will now print those characters.
				(up to 5)

NOTE THAT TO PRINT OUT LITERALS CREATED BY THE SUBROUTINE
PL(n) MUST BE SET TO 3 -- EVEN IF THE CORRESPONDING PARAMETER
WAS ORIGINALLY USING SOME SORT OF LITERAL!!!!!

	### never alter PL(2)!!! ←←←


If some interaction between instruments is  desired  there  are  many
ways  to  move  parameter  information  around.   The  use  of  dummy
parameters (those which are not used in any  instrument)  which  call
the  subroutine  is a good way to store parameter data for later use.

!!  SPECIAL PROBLEM with P2 !!  If P2 is set  with  'P2  SUBN;'  all
TEMPO  changes will effect the note durations in the usual manner. If
P2 is reset during any other subroutine calls TEMPO changes will  not
be effective.  Also 'duration' set in seconds may have to be adjusted
to 'real time' values.

Use the duration array,  DUR(n),  to  cause  any  instrument  to  end
prematurely.  ('n'  refers to the instrument number.)   Whenever P(1)
equals or exceeds DUR(n) no more notes for that  instrument  will  be
printed.  Thus to cause an ending, set DUR(n) to zero one note before
the desired ending.

************** LOADING THE SUBROUTINE ************************

After you have written your FORTRAN subroutine you must load it in 
the following manner.  Type:
				LOAD SCORE[SYS,MUS],SUBR

If you have made any programming errors the normal FORTRAN messages
will appear.  If the program compiles and loads successfully you
should 'save' it immediately.  To do this type:

				SAVE SCORE

This will save SCORE with your subroutine on your disk area.  To run
it then type:
		RUN SCORE

(R SCORE gets the system SCORE, RUN SCORE gets your copy.)


The following subroutine is included in SCORE.SAV (which you get when
you  type R SCORE.) In order to use this routine P11 and P12 must not
be required by the instrument since they are used to transmit numbers
and to call the subroutine.

C*****  THIS ROUTINE DIVIDES OCTAVE INTO ANY NUMBER OF EQUAL PARTS

	SUBROUTINE SUBR
	COMMON /P/P(1) /PL/PL(1) /INS/ INST(27),BG(60)
	COMMON INUM,IPAR,CNT(27),BT,IREST,DF,DUR(27)
C   CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
	X=P(3)
	IF(PL(3).EQ.1)GO TO 1
	X=IFIX(X)
C  FOR RAND NOTES TO LOCK ON NOTE NUMBERS.
	X=30.8677*2**(X/12)
C  X=FREQ. IN HZ. BASED ON NOTE # IN P3 (OR GIVEN FREQ.)
	PL(3)=1.
C  THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
1	P(3)=X*2**(P(11)/P(12))
C  P12=# OF DIVISIONS OF THE OCTAVE. P11=CHROMATIC STEP IN THAT DIV.
	RETURN
	END

C   STEPS  ; TYPICAL INPUT FOR MICROTONE SUBROUTINE.
C   CLAR  ; P2 .3; P3 A3; P4 1000; P5 F1; P7 F4;
C   P11 NUM/0/1/2/3/4/5/6/7/8/9/FINE;
C   P12 9 SUBN; END;  OCTAVE IS DIVIDED INTO 9 PARTS.

Note  that  if notes of the tempered scale are chosen by random means
it is quite possible that note numbers  coming  into  the  subroutine
will  not  be  simple  integers.   In most cases it is best to change
these numbers to  integer  form  before  doing  other  steps  in  the
subroutine.  If the notes are in P3, simply include in the subroutine
a line such as J=P(3) and then use  J  for  the  value  of  the  note
number.   Of  course  some  number  must  be  put back in P(3) before
leaving the subroutine.









******  CUTOFF N1, N2  ******

CUTOFF may be used in any parameter, not required by  the  instrument
involved,  for the purpose of causing random note durations to end at
a specific time.   Two numbers should follow the code word.  The  1st
number  is the cutoff time (in BASIC TIME) and the 2nd number affects
the duration of the last note before the cutoff.

Example:	P2  1  X1  X2; P12 CUTOFF N1 N2;
	  Then putting in values for X1, X2, N1 and N2 --
        	P2  1  .1  .2; P12 CUTOFF 8 .11;

This will cause some note to end at exactly 8".  The last note before
time 8" will  be in the range of .11" to .31", i.e. somewhere between 
the number N2 up to the  highest  number (X2) given  for  the  random 
limits plus N2.  (.2+.11=.31)


     **********  SECTION 10  **********

xxxxx  DUTY FACTOR (DF)  xxxxx

DF CAN SERVE FOUR  PURPOSES.  IF DF IS GREATER THAN ZERO AND LESS
THAN 100 (THE USUAL USE OF DF)  NOTES WILL SOUND ONLY DF% OF THE
TIME STATED IN P2.  (When making note lists for MUS10 the use of any
duty factor which causes a note to last longer than its original     
given duration will cause SCORE to create a new instrument name for
the note in question.  See part on DUPINS under CHORDS in SECTION 5.)

   ***** if DF is made negative, the absolute value of DF will be
	 the duration of a rest following each note.

   ***** if 100 is added to DF, DF-100 will be the fixed duration
	of each note. A following rest will fill the time remaining
	before the next note.  NO OVERLAP CAN EVER OCCUR.

	In both this and the previous situation, if the total 
	original note duration is less than the value of DF, then
	no change will take place. IF A REMAINING VALUE IS ZERO OR 
	LESS, P2 WILL BE CHANGED TO P2/2.  

   ***** if 200 is added to DF, DF-200 will be the fixed duration
	of each note. A following rest will fill the time remaining
	before the next note. OVERLAPS ARE ALLOWED TO OCCUR HERE.

  ***** if 1000 is added to DF, DF-1000 will be the fixed amount of
	time added to each note.  Thus if P2 has a series of values,
	1, 2, 3, 4  and DF is set to 1000.5, the attack times will
	be as given in but the sounding duration of each note will
	be 1.5, 2.5, 3.5, 4.5.   ***** When writing MUS10 lists 
	SCORE will cause a new instrument name to appear in any case 
	where an instrument overlaps itself!!!

Normally DF=1, i.e.  The envelope for a .5" note  will  last  exactly
.5".   If DF=.3, the envelope will last .15" (i.e. .5*.3) followed by
.35" of silence.  'DF' may be set with any of  the  ways  of  dealing
with  simple  numbers.

Example:	DF  1.1; <all notes last 10% longer than given P2 val.
				overlap will occur

		DF -.1; < all notes followed by .1" rest
				never overlaps

		DF 100.2; < all notes sound for only .2"
				never overlaps

		DF 203.; < all notes sound for exactly 3".
				overlap can occur

		DF 1000.3; < all notes have .3" added.
				overlap will occur

  ------- DF may be followed (or preceded) by Pn, where Pn is any 
	  parameter not used by the instrument.  In this way many 
	  of the other features of SCORE may be used to determine 
	  the duty factor for any given note.

      *** When DF is used  without  a preceding parameter number,
	  only a simple number or a P number may follow it!!!****

Example:	DF P16; <duty factor will be set in P16
		P16  NUM/  < List of numbers will be duty factors.
		1/.5/.7/1;<If P2=.5, a notes will all start at .5"
			    intervals.

  or:		P22 DF MOVE/10  1  .3; <The duty factor changes.

  **** NOTE:  DF affects P2 only.  TEMPO changes affect DF only when
		it is used in the first sense discussed, i.e. as a
		percentage of the given P2 values.  In the other 3 
		cases DF gives REAL TIME values.

****** the next refers to MUS10 output only ********
In  MUS10 (not with MBOX) it is not possible for one instrument to  play
more than one note at a time. With the 'SCORE' program it is possible to
get around this restriction when creating output for MUS10 because if DF
causes an instrument to overlap with itself the name  of the  instrument
involved wiil be altered by raising the last letter in the name one step
up the alphabet.  Thus if your instrument name were ZIPA and an  overlap
were detected the next appearence of that instrument would be under  the
name ZIPB, etc.  There is a special program (DUPINS) for the purpose  of
making  duplicate  instrument definitions with an alphabetical change on
the last letter of each name.  For the use of 'DUPINS' see Sec.5.


*************** INVISIBLE *********************

If the letter I (or the whole  word  INVISIBLE)  is  found  after  an
instrument  name,  that  instrument  name, as well as P1 and P2, will
not! print in the score.  This is useful for entering changes in  SEG
or SYNTH that are to follow set time patterns.  When using INVISIBLE,
P3 should usually have some identifier in quotes.  If for any  reason
it  were  desired  to  have  the values of P1 and P2 appear after P3,
simply set P4 P1; and P5 P2;.  Then consider that what would normally
be P3 will now be entered as P6, etc.


	DUM1 INVIS 0 10;  The name DUM1, P1 and P2 will be invisible.
	P2 1; 			The two instrument names will 
	P3 LIT/"GLISS"/"BLOP"; alternate from note to note.
	P4 P1; P5 P2; 		P4 and P5 will print P1 and P2.
	- - - etc.

See SEG and SYNTH for further use of INVISIBLE.
*******Note that Tempo Factor changes will not!! show up when  P2  is
transferred to some other parameter.************

%%%%%%%%%%%%  IE  %%%%%%%%%%%%

IE (Invisible End)  used in  the same  way as IN  makes the  end of  a
note's printout become  invisible instead of  the beginning.  Thus  if
you use  IE  in one  instrument  and then  IN  in a  dummy  instrument
immediately following it  is possible to  deal with instruments  which
have more than 30 parameters.  The first 30 parameters will be in  the
first instrument's  list but  IE will  suppress the  final  semicolon.
Then the dummy instrument  will have an IN  which will cause its  name
and first 2 parameters  to be invisible.  Thus  parameter 31 for  your
large instrument will be in the P3 slot of the dummy, etc.  (Note that
the end of your IE  instrument will print out on  the CRT but it  does
not print in the .SCR file which will be read by the MUSIC program.



************* TAP (for real time RHYTHM) **************

Use  'TAP'  to  read  in  lists  of  note durations prepared with the
'RHYTHM' program.  Such lists are treated by 'SCORE'  exactly  as  if
you  had  typed in a long string of values under 'NUM'. (The 'RHYthm'
program allows you to tap out note durations with two telegraph keys.
The program is self-instructional.)

Type  the  name  (use 5 spaces) under which you have saved the RHYTHM
list on the line after the parameter number.

Example:	P2 TAP;	 'BEATS' is the name of the list 
		BEATS ;   created by the 'RHYthm' program.

('TEMPO' and 'TF'[TEMPO factor] will affect any  data  in  P2  except
that entered by the 'EDIT' and 'INSERT' features.)


********** RTAP (coordinates real time input parts) ***********

This is similar to 'TAP' except that you must indicate at what points
the parts  are to be coordinated.  Under the name of the 'RTAP' input
file you must type a string of pairs of numbers. The 1st of each pair
will  be a duration in rhythmic units (i.e.quarter notes, whole notes
etc.) the 2nd will be the total num of notes to be fitted  into  that
rhythmic time.

With  'RTAP'  you  must  consider that the TEMPO is relatively stable
when tapping the rhythm for each part.   Any  overall  TEMPO  changes
will be entered with 'TEMPO' or 'CONDUCT'.

In  the  following example the 1st 7 notes will fit into 1 whole note
(4 basic seconds) of time.  Note #8 will begin  exactly  on  the  2nd
whole  note  of  time.  The  next  14  notes will fit into the next 6
quarter notes of time.  finally the last 3 notes will fit into a half
note of time.

Example:	P2 RTAP;
		RUBAT; Name of 'RTAP' input for this inst.
		1/7  /1,2/14  /2/ 3; three pairs.
				     ';' will end the list.


*****  DUPL N;  *****

Use this for duplicating instruments already set up.  This is similar
to  'REP'  except  that  all the parameter data entered to this point
will be copied.  'DUPL' must appear just after an instrument name.  A
different begin  time may be given the new instrument.  The parameter
data in effect at that time  will  be  duplicated,  but  all  further
changes must be dealt with in the ordinary ways. (For MOVE data to be
properly interpreted, the begin times of instruments  involved  must!
be the same.)

Example:   ZAP2  1,30;  Starting with note 30 of instrument 1 all
	   DUPL  2;     instrument 2's data will be copied by ZAP2.
 	   P7 25; END;   Any parameter may be reset immediately.

Once a parameter is set by 'DUPL' or 'REP' it will continue to follow
any  changes  occurring  in the original or leading instrument unless
the parameter has been reset in the instrument at hand.

  BUZZ  0 20; P2 1; P3 C4; P4 400; END;
  ZAP   0 20; DUPL 1; P3 E4; END;  P3 has been reset.
  BUZZ 10; P3 G4; P4 500; END;  P4 of ZAP will go to 500, P3 of ZAP 
  			                             will not change.


'DUPL' will not duplicate 'TAP' input.  (In some cases '-9999.02' 
could be used.)


***** ALL *****

If several parameters are to be the same for all instruments the word
"ALL" may be inserted after any parameter number.  The data  in  that
parameter   will  then  appear  in  all  instruments  with  a  higher
instrument number used.  If some instruments are not to use the "ALL"
data, their data may be entered in the usual way on a later line.  It
will override the "ALL" data.

BUZZ ALL 0 1 12 ; P2 ALL 1; P3 ALL C4 ; P4 ALL 200 ; END;
P8 ALL NUM/5/10/20;	This data for all unless changes appear. 

HISS  ; P3 G4; END;		'HISS' changes  P3  to  G4.  

ZAP  0  1  18; P2 .7; END;    'ZAP' plays 18 NOTES, P2=.7" 

TOOT ; RUN;		'TOOT' uses all data of 'BUZZ'.

Special care must be taken when using 'MOVE' with 'ALL'.
Check your score carefully. 
     **********  SECTION 11  **********

***** 'SEG' and 'SYNTH' *****

If  any  functions  are  to be redefined in the course of a score, by
means of the INVISIBLE feature, 'SEG' and 'SYNTH' may be  treated  as
'instruments'  --  with  the  difference  that  P1 and P2 will not be
printed out.   P3 will be reserved for the  function  name  plus  the
';'.   This data must appear with quotes. (See Section 10.)

Using 'SYNTH', suppose you should wish to change from  a  mixture  of
66%  fundamental  and  34% 2nd harmonic to 0% fund., 34% 2nd harmonic
and 66% 3rd harmonic  over  a  period  of  20  seconds  at  1  second
intervals.

Example:	DUMY1 INVIS  0 20;
		P2 1;
		P3 "SYNTH(F1);";   Sets the function number.

		P4 1; The first semicolon in the line above is part 
                       of the data.
		P5 MOVE/20 .66,0;
		P6 2; P7 .34; P8 3; P9 MOVE/20 0,.66;
		P10 999; END; SYNTH data must always end with '999'.

If the number of parameters needed for 'SYNTH' is to vary from
time to time, set the number to the maximum needed at  the  beginning
and always set all the unused pairs to 1,0 (fundamental at 0 ampl.).

With 'SEG' there are some special problems since the number of
'steps' must add up to exactly 100 and no numbers may follow the
last amplitude given.  Thus if the number of parameters needed is
variable, all those following the last used must contain ';'.

Suppose you wish a glissando rate in F12 to change in 5 
steps during 20" from 'SEG(F12);0,1 1,100;' (slow)  to  'SEG(F12);0,1
0,80 1,100;' (fast).
Set up 'SEG' with 9 parameters.  Set P2 to the times desired for each
change of F12.  Use quotes with P3 to enter '(F12);'.

Example:	DUMY2 INVIS 0 20; P2 4; P3 "SEG(F12)"; (P4 will be 0)
		P5 1;    (P6 will be 0)
		P7 NUM/1/20/40/60/80;
		P8 1; P9 100; END  ; No '999' is needed with 'SEG'.

*****  Code words not used in conjunction with instrument names  *****

	INSERT
	PRECEDE
	EDIT
	TEMPO

xxxxx INSERT N1,(N2,N3); xxxxx (Be sure to leave a space before N1.)

This  is  useful  for  adding single notes or comments. A total of 19
lines may be added.

A line may be added at a specific point in time or in terms of a note
number.

A  single  number  after  insert  will  be the insert's entry time in
seconds. If two numbers are given, they will be the instrument number
and  note  number  before  which  the  insert will appear. If any 3rd
number is given, 'INSERT' will reproduce several lines of text.    To
end  the input type '*' in column one of a final line.  This will not
appear in the printout.

An  entry  time in seconds will be in 'basic time', i.e. not affected
by 'TEMPO' or 'TF' changes.

Example:	INSERT 2.5; Next line  will  appear  at  2.5"  'basic
			    time'.
		SEG(F2);0,1  1,100;

		INSERT 3,45; Next line will appear just  before  note
			     45 of inst 3.
		PRINT(P4);

		INSERT 5,0,1; Next lines will appear at time 5".
		P23←526;
		RA←0;
		RB←0;
		*		This line will not appear in score.

Up to 75 characters may be entered in each line.  A 'comment' for the
score  may  be  typed by beginning the entry with '<' and ending with
';'.  If note data is to be inserted, be careful that P1 and  P2  are
consistent with the requirements of the music program.

xxxxx PRECEDE; xxxxxxxxx

  'PRECEDE;'  Will cause an  insert  to  appear  before  the 'PLAY;'
  statement. This is useful for setting up parameters, MUSIC program
  functions, or anything which must appear before the PLAY list. 
  Any  number  of  lines  may  be  typed.   The  PRECEDE  section is 
  terminated by the presence  of  a  * in column one.  See section 9 
  for an example of the use of PRECEDE.


xxxxx EDIT N1,N2(,N3) xxxxx

'EDIT' allows you to edit any single parameter  (except  P1)  already
written in the score or you may replace the entire list of parameters
for any given note.  'EDIT' supercedes  all  choices  made  by  other
means.

N1=inst number.  N2=note number.  N3=parameter number.

If you type only 2 numbers (inst & note numbers), you  will  have  to
insert the instrument name and all! parameters for that note and what
you  type  will  appear exactly as is in the score.   Be sure that P1
and P2 are correct.  75 spaces may be used.  If  you  also  type  the
parameter  number, you may enter new data for that parameter and note
only.

When P2 is edited it may only be a number. (Also - P2,  when  edited,
will  not be affected by 'TEMPO' or 'TF'changes.) P3-99 may use up to
5 characters.  What you type will appear as is.  Do not use quotes.

N.B. If note pitches are edited (using the tempered scale) they  must
be entered as C, C/2, CS*4, etc., not as C4, C3, CS6, etc.


xxxxx TEMPO (N) xxxxx

This is used to make TEMPO changes for all instruments at  once,  'N'
is  begin  time (in basic time) of first TEMPO change.

→→→  When TEMPO is used for the 1st time 'N' must!! equal zero.  When
'N' is omitted, =0 is assumed. Metronome numbers from 20 up or  TEMPO
factors  from .1 to 10 may be entered. Any number larger than 10 will
be understood as a MM number.

The  duration  of  a TEMPO change is always in terms of 'basic time',
I.E. when the 'overall TEMPO factor' is 1 or a  quarter  note=1  sec.
(Of  course  a  quarter  note might not equal 1 sec. If TEMPO changes
have been entered with 'RHY'.  The important thing is that the  TEMPO
factor is '1' until changed by 'TEMPO'.)

Normally,  3 numbers will be given on each line. N1=duration N2=tempo
at start of dur. N3=tempo at end of dur.   Up to 30  changes  may  be
made  at  a  time.   The  tempo  may  be  set  in either of two ways.
Conventional metronome numbers may be used, (I.e.  mm=the  number  of
quarter notes per minute), or the tempo may be set in terms of 'tempo
factors'.  The 'tempo factor'  1  is  equivalent  to  mm=60.   'Tempo
factors'  must be less than 10, 'mm' numbers must be greater than 11.
If only one number is given after 'TEMPO' it will be taken as a fixed
tempo, not as a duration.

To  avoid  confusion it is best to enter all TEMPO information in one
string.

Example:	TEMPO /20 60/  < 1st 20 beats stay at MM=60
		12  60 120/    < accel. to 120 during 12 beats.
		20  120/       < stay at 120 for 20 beats.
		7  120 40;     < retard during 7 beats. Stay at 40.

P1  and  P2  values  in 'INSERT' and 'EDIT' notes remain unchanged by
'TEMPO' and 'TF' and hence must be reset.


xxxxx CONDUCT xxxxx

Use 'CONDUCT' to read in a list of TEMPO changes  prepared  with  the
'RHYTHM' program.  (See also 'TAP' on page 6.) The list is treated by
score as if you had typed in a  TEMPO  change  for  each  beat.   You
cannot  use  'TEMPO' if you use 'CONDUCT'. (You may use 'TF' however.
see page 16.)

Example:  CONDUCT ;
	  60X ; '60X' might be the name of the list created
		 by the 'RHYTHM' program.
(Note: You cannot use 'TAP' or 'RTAP' with inst 27 if you plan to use
'CONDUCT'.)


******** SEMICOLONS **********

Many items may be put on one line. Semicolons must separate the items
and the line must end with a ';'.

Example:	BUZZ 0 10; P2 1; P3 C4 ; P5 100; P7 0; END;
		ZAP 3,15; P5 .73 ; P6 100.2 ; END;
		HISS 0 5; P2 .1; P3 1 C4,B; RUN;

→→→→ A new line must always be used after the word 'END' .



     **********  SECTION 12  **********


********** How to run 'SCORE' **********


To  run  'SCORE' type 'R SCORE'. The TTY will respond by typing 'TYPE
FILE NAME'.

You  should type  the  name  of  the  edit  file  containing all your
parameter data.  

Following  the  file  name  up  to  4 numbers (N1, N2, N3, N4) may be
typed.  (See also 'TYPE' and 'EDIT' at end of this section.)

N1=TEMPO FACTOR (TF)		N2=amplitude factor (ampfac)
N3=seconds to be omitted  	N4=duration at cutoff

(If you type 'INFO' or 'HELP'  for the file name a resume of the above  
and how many instruments are available is typed out.)

If  no  numbers are typed the following is assumed: N1=1, N2=1, N3=0,
N4=19999.


The following explains the various possibilities.


xxxxx TF xxxxx


The 'TEMPO FACTOR' controls all time elements in the score. If it  is
set to 2, all P1 and P2 time will move twice as fast.  (I.e. The time
values will be cut in half.) If it is set to .333, all time will be 3
times as long, etc.

'TF' is set at 1 (or MM=60) at start of program.

None  of the time values printed at the top of the score are affected
by the overall TEMPO FACTOR.

The 'TEMPO FACTOR' will always automatically reset itself to  '1'  at
the  end  of  each  run. Any values for P1 or P2 set with 'INSERT' or
'EDIT' will not! be changed by 'TF'  or  'TEMPO'  changes.   If  such
values  are  not  reset  errors  will  occur  in the sound generating
program.

            xxxxx  AMPFAC  xxxxx

This  controls  the  values  in P4 only.  If amplitude data occurs in
other parameters leave AMPFAC at 1.  If you set AMPFAC (N2)  at  1.5,
all P4 numbers will be increased by 50%.
If AMPFAC is to be changed but not 'TF', a 1 or  0  must  appear  for
'TF'.

Example:	TTY -- TYPE FILE NAME
		You -- ZOOM  0 1.5  <CR>

    ******* note that if you are using 18-bit samples in the MUSIC
	    program you should set the amplitude factor to some
	    number between 32 and 64 in order produce sound within
	    a practical amplitude range.



xxxxx  OMIT  xxxxx

Use this for testing small sections of  long  note  lists.   Example:
suppose you wish to run only 5 seconds from the end of a 25" list.

Example:		ZOOM  0 0 20

Be careful regarding 'INSERT' and 'EDIT' NOTES.  The P1 time of  such
NOTES is unaffected by 'OMIT'.
Also the 'TEMPO FACTOR' does not interact with 'OMIT' or 'DURATION'.
If you use 'TF' and 'OMIT' together, first get a  listing  with  'TF'
set as you wish it, then set 'OMIT' according to those time values.
'OMIT' will always automatically reset itself to '0' at  the  end  of
each run.


xxxxx DURATION xxxxx

If  you  wish  to set the actual duration to something less than that
given in the input list type the new duration as the fourth number.

To play the first 10" of a 25" note list type:
			ZOOM  0 0 0 10

To play the section from time 6.2" to 12.35" type:
			ZOOM  0 0 6.2 12.35

Sometimes roundoff problems occur.  Check your note lists carefully.


Next the TTY will type:
         'TO DSK=1,11   TTY=2,22   BOTH=0,33   LPT=4'
 
You may type up to three numbers at this point. (N1, N2, N3)

           N1 = 1 WRITES DATA ON DSK,  =2 WRITES ONLY ON SCREEN
              = 0 WRITES ON DSK AND SCREEN.
              = 11,22,33 ARE THE SAME AS 1,2,0 BUT INPUT LIST IS NOT
                         WRITTEN ON SCREEN.

           N2 = RAN NUM INITIALIZATION.     N3 = DO ONLY INST. #N

	      ALSO FOR N1:  N1=5(OR 55)=DURS ONLY (FOR PROOFING)
	       		      =6(OR 66)=DEBUG V ARRAY

			     If you type a '55' the actual duration
			     of the note list will eventually appear 
			     on the TTY and the numbers of items 
			     found in the various lists.

			     If you type '66', the contents of the 
			     'V array' will be printed.

If you type a second number it will become the initial random number.

A  THIRD  NUMBER  WILL  CAUSE  ONLY THE  INSTRUMENT OF THAT NUMBER TO
PRINT OUT IN  THE  SCORE.   THIS  IS  USEFUL  TO  TRY  OUT  A  SINGLE
INSTRUMENT OF A MULTI-VOICE SCORE AT A TIME.

Example:   TTY -- 'TO DSK=1,11   TTY=2,22   BOTH=0,33   LPT=4'
  	   You --  22 399 2

  OUTPUT WILL BE ON TTY ONLY, THE INITIAL RANDOM NUMBER IS 399, 
  THE INPUT LIST WILL NOT PRINT OUT, ONLY INST.2 WILL APPEAR.








xxxxx  TYPE  xxxxx

If  when  SCORE  is  started you type 'TYPE' instead of a file name a
complete note data-list may be  entered  directly  to  SCORE  without
recourse  to  an  outside  editor.  Care must be taken as there is no
provision for backing up to correct an earlier line.  After the  word
'RUN'  is  entered  all  data  typed is put into a disk file known as
'TYPED'  which  may be later edited like any  other  file.   If  this
data  is  to  be kept it is advisable to rename the file as any later
use of the 'TYPE' feature will create a new 'TYPED' file.


xxxxx  EDIT --- Editing SCORE input as it is read in.  xxxxx

If  'EDIT'  is given as the file name when SCORE is started each line
of input may be changed.  You will  be  asked  again  to  'TYPE  FILE
NAME'.   Now  enter  the  edit  file  name.  As each line appears the
program questions if changes are to be made.  'Y' (=yes) indicates  a
change.  In  this  case  the  complete  line,  with  changes, must be
retyped.   A <CR> is taken to mean no changes are  desired.   No  new
lines may be inserted but lines may be lengthed to 72 characters. 'G'
(=go) may be used to escape from this edit mode.   If  this  type  of
editing  is anticipated when the file is first set up it is advisable
to use very short lines of text.

     **********  SECTION 13  **********


********* SECTIONS ********

If  certain  blocks  of  data  are to recur they may be given section
names which can be called upon several times.

	SECTION A;
	TOOT  0 20; P2 .1; P3 NO/ B4/ A/ G; P4 500; END;
	END SECTION;

	SECTION B;
	BUZZ  0 20; P2 .25; P3 1 C2,G3; P4 800; END;
	END SECTION;

	BUZZ  ; P5 F1; END;


	TOOT  5 -4; END;   A 4" rest begins after time 5".

	PLAY A 9;

	BUZZ  7 -3; END;

	PLAY B 10;

	BUZZ 10; P4 150; END;

	TOOT 13; P3 NOTES/ CS5/ DS/ E/ FS; END;

	PLAY A 18;
	RUN;

Sections are identified by any single character.  They are terminated
by 'END SECTION'.  In the above example, anytime the  data  appearing
in  'SECTION  A'  is  to  be  used  after  its 1st use the line 'PLAY
A,N1,N2;' must appear. N1 and N2 are numbers used to  set  the  begin
time  of  each play.  If N2 is 0 or does not appear the begin time is
in seconds.  If 2 numbers appear, the 1st is  an  instrument  number,
the 2nd a note number.

'SECTION'  may  be  used at any time in the data list.   A 'PLAY' may
appear anywhere after a section has been designated.  At any time the
data  of  a section may be over-ridden by listing new data for any of
the parameters. Above, at time 10" P4 of BUZZ  will  change  to  150.
etc.

Be  sure  to  check  your  score carefully when using this feature in
conjunction with 'ALL', 'MOVE', 'DUPL', and 'REP'.
     **********  SECTION 14  **********


The following contains examples of most features of 'SCORE'.

        THE EDIT FILE NAME WILL BE TEST. (USE UP TO 5 LETTERS.)
	TEST.SCR will be the name of the note list.

       		If the first column is blank the line will be ignored.

BUZZ ;		instrument 1=BUZZ, begin time=0", duration=# of notes
		in 'NOTES' (P3).
P2 RHY/		RHY=next entries will be in terms of musical rhythm.
4/8/16/1/-8/	quarter note, eighth, sixteenth, whole, eighth rest
4,8/1,16/	dotted quarter, whole tied to sixteenth
8,16 X 5/2 X 3/	five dotted eighths, three half notes
-12/20/		-12=1/8 note triplet rest(1/12 of a whole), 20=1/5 of
		a quarter
4//8///-8,16/	two quarters, three eighths, a dotted eighth rest
16//4/8,16/REP 3,5;	the previous 3 entries will play 5 times
        	';' signals the end of the list of entries

P3 NOTES/	notes of the tempered scale may be entered
C1/CS/D/	C1=lowest C on piano keyboard. S=sharp. F=flat.
DS/E/		The octave range will remain the same until changed.
FS4/DS/C/R/	F# above middle C, D#, middle C, R=rest.
DF5//D////	Two Db's in 5th octave, four D's.
C3/G/E/G/X 4,3/	The pattern is played 3 times.
REP 27/		Everything thus far will repeat.
FS6 X 9/FINE;	Nine F#'s, 'FINE' marks conclusion for BUZZ.
         	';' concludes list.

P4 NUM/		A list of numbers will be entered.
100//200/300 X 4/	A total of seven numbers.
50/X 3/P2/      The sequence 300,300,50 will play twice.
REP 12,3;	The entire string of  numbers  entered  will  play  3
		times, including the current data for P2.

P5 FUNC/	A list of functions.  (Use  only  F1 through F15 in a
		list).
2//10 X 3/5; 	=F2,F2,F10,F10,F10,F5.  'REP' may also be used.
          	Every 'list' must end with a ';'.

P6 LIT/		
"P3*P4"/"P3+P4"///Surround items by quotes. 2nd item appears 3 times.
"AS"/",-1"/"1"/; Comma precedes minus sign. There are no REP features
		with LIT.
      		';' will end list.  Last item will appear twice.

      		Next will be random selection of literal strings.
      		Use no more than two lines.
      		The 1st of each pair is a % number.
P7 .2 "P3*P4" .3 "P6" .33 "101.3" .17 "2";
		20% of the time it will pick "P3*P4",etc.
P8 MOVE/	To move from one number to another over a given dura-
		tion.
5 10 150/	During 5" P8 will change from 10 to 150.
3 80 43;	During next 3", from 80 to 43.
      		End with ';'. P8 will stay at last number.(43)
P9 MOVE/
6 CS5 FS4;	During 6" P9 will move down from C# to F#.
        ;	After 6" it will stay on F#.

P10 MOVE/20 10,40 100,400/ If there are 5 numbers, the last two pairs
10  30,100 30,30;    will be random selection ranges. (see comments)

P11 MOVE/11.4 C2,F2 G3,C5/ Moving ranges of random selection of temp-
		ered notes.
3 A4,A4 A4,A4/	Stays on A for 3".
5 A4,A4 C2,F2;	Returns to change of departure.
      		Octave numbers must always be given with 'MOVE'.
END  ;		Ends entries for this instrument at this begin time.

BUZZ 7.5;	Entries beginning at time 7.5"
P7 263.5;	This number will repeat for each note until changed.
P5 F11;		 "   function "    "     "    "    "    "     ".
                 (up to F15 only)
P9 AS3;		This note   will  "     "    "    "    "    "(no F's)
		If param numbers are skipped, they will print 
                out as zeros.
		Next gives random selection within specified ranges.
        	30% chance between 1 & 4, 22% between 10 & 15, etc.
P13 .3 1,4  .22 10,15 .18 20,30  .3 55,55 ;	(P13 was 0 until now.)
		Next gives random selection of tempered notes.
P15  .1 CS3,F3  .5 C4,DS4  .4 FS6,B6;
P16  1 10,20;	 100% of the time, a number between 10 and 20.
P14  P13;	Will repeat selections of P13 in P14.
P17  P2; END;   This repeats data of P2.
                 Ends entries for BUZZ at time 7.5"

TOOT 0 2,15;	Inst 2=TOOT, begin time=0", 
                2,15 means inst2 will play 15 notes.
P2 REP; 	Will repeat data of previous 
                instrument for this param number.
P3 REP 9;	Repeats P9 of previous instrument.
P5 REP 3,2;	Repeats P3 of instrument 2.
                (i.e. TOOT. just ';' does the same.)
P6 REP 6,1 4;	Will repeat P6 of inst 1 in this 
                and all insts through #4.
RD  .05;	'RD' sets random tempo range to + or - .05"
                It will never vary more than .05"
RR  .2; END;	'RR' sets % of random rests.

CLAR 2 9.45;	Begin time=2", dur=9.45".
P2 RHY/TEMPO/	TEMPO will be set for this instrument individually.
7 84 112/	Moves from MM=84 to MM=112 during 7".(7 quarter NOTES)
11.3 112 46/	Retards to MM=46 during 11.3".
1 96 96;	Shifts to MM=96, stays there.  
                ';' ends 'TEMPO' entries.
4 X 7/8,16/16/REP 2,15; Rhythmic items follow directly.

P3 C4; P4 100; P5 ; P5 will repeat data of param just before.
                 (Don't use with 'RD','RR')
RR MOVE/			(the above = rep 3,4/)
4 .1 .5/	Random rests will change from 10% to 50% in 4".
3 .6 0;		  "     "      "    "     "   60% to 0% in 3".
		A ';' is needed to end 'MOVE' entries.
END  ;

ZAP   0 8;	Inst 4=ZAP, begin time=0", duration=8".
DUPL 2;		Will duplicate all data of inst 2 (TOOT) thus 
                far entered.
P2 RTAP/	Rhythm from telegraph keys, to be coordinated.
NAME  /		1st five spaces=name of rhythm data file.
1,4,8/15 /1,1/7 /2,16/5; Coordination comes on 16th, 
                          and 23rd notes and at end.
             	';' ends 'RTAP' data.
P4 123; END ;	 P4 is reset immediately.

TOOT  2,5;	Next entries begin on note 5 of instrument 2.
P2 .2;		
P7 REP 4,3;	Data of P4, inst 3 will be repeated.
P8 "P3*P4/2+P16";    This literal string will appear for each note.
P10 SUBN;	This will call a subroutine and print numbers.
P11 SUBL;END;    "    "    "   "     "       "    "   letters.
          Be sure to leave at least 1 space after 'INSERT' or 'EDIT'.
INSERT  2.3;	Line will appear at time 2.3" (basic time!).
P24←21.3*P4+P8/P11;  <Up to 75 characters (including 
                     this comment) will appear.

INSERT  2,7; The next line will appear just before note 7 of inst 2.
PRINT P1;

EDIT  1,8,4;	The next will replace P4 in note 8 of inst 1.
440        ; Up to 5 characters may be used (don't include the ; !!)

EDIT  3,11;If no param num is given the entire note must be entered.
CLAR 2.3 .13 AS*2 250;  <Up to 75 spaces may be used. 
                        Be sure P1&2 are OK.

TEMPO/	'TEMPO' changes outside of a particular inst will affect
11 72 144/ P2 for all insts.  Be sure to check any time factors
6 144 108/		in other params and all data entries
5 108 /72;	which are time dependent. ';' ends TEMPO entries.
RUN;

     **********  SECTION 15  **********

*********** Some Supplemental Programs ************


********* MIXSCR ***********

    The SCORE program has  several  size  limitations.  For  example 
only 27 instruments may be used and the main storage array has  only
2000  words.   Also  only  99  parameters  are  available  for  each 
instrument.  By careful use of the 'LIT' feature the parameter  list
may be  made to  exceed 99.  Or the INVISIBLE and IE features may be   
used.  The  program  MIXSCR  allows  you  to  combine  any  2  SCORE
output files.  Thus if you have work which requires  for  example 30
instruments or more than 2000 words of storage you could make  up  2  
separate files involving 15 instruments each.  Then,  after  running  
them through SCORE, run MIXSCR to combine them into  one  SCORE file 
for the MUSIC program.  The MIXSCR program is self-explanatory.



******************** DUPINS ************************

	See Section 5 under CHORDS.




******* PLAY *********** 

This program is used for real-time play.

PLAY reads a single  sound file (TEST.SND is  default name)  from  the
disk.

The play-back sampling rate is established by the 'header' that is put
on every sound file. 


*********************************************************************
*********************************************************************
************ For general information on the MUSIC program ***********
************ see  USEMUS.LCS[UP,DOC].    For  details  on ***********
************ the MUS10 program see MUS10.DOC[MUS,LCS].    ***********
*********************************************************************
*********************************************************************
**********  INDEX  **********

		  SECTION NUMBER
ALL		. . . 10		RETROGRADE	. . . 7
AMPLITUDE FACTOR  . . 12		REVERBERATION	. . . 14
BASIC TIME	. . . 9,11		RHYTHM		. . . 4,10
BEGIN TIME	. . . 1			RTAP		. . . 10,11
BLANK LINES	. . . 1,5		RUN		. . . 2,12
CHORDS          . . . 5			SECTIONS	. . . 13
CODE WORDS	. . . 4			SEG		. . . 11
COMMA		. . . 9			SEMICOLON	. . . 1,8,12
COMMENTS	. . . 1,11		SPEEDS		. . . 15
CONDUCT	        . . . 11  		STAR		. . . 11
CONTINUE        . . . 8
COUNT		. . . 9			SUBROUTINES(SUBN,SUBL) . 9
CUTOFF		. . . 9        		SYNTH		. . . 11
DUPINS		. . . 5
DUPLICATE	. . . 10		
DURATION	. . . 1,9,12		TAP		. . . 10,11
DF (DUTY FACTOR). . . 10		TEMPO	      . . . 4,10,11
EDIT		. . . 11,12		TEMPO FACTOR  . . . 4,10,12
END		. . . 2,5		TYPE		. . . 12
FINE		. . . 5			X		. . . 5,8
FUNCTIONS	. . . 2,5,9		ZERO		. . . 2

IE (INVISIBLE END). . 10
INSERT		. . . 11
INVERSION	. . . 7
INVISIBLE	. . . 10,11
LETTERS		. . . 5
LITERAL		. . . 5
METRONOME	. . . 4
MIXSCR		. . . 15
MOTIVES		. . . 7
MOVE,MOVX,MOVP	. . . 8
NOTES		. . . 2,5
NOTES,EDITED	. . . 11
NUMBERS		. . . 2,5

OMIT		. . . 12
Pn (secondary)  . . . 7
P2		. . . 4,5,8,9,10,12
PLAY		. . . 15
PRECEDE         . . . 11
PRINT		. . . 11
PROXIMITY MODE	. . . 5
RANDOM LISTS	. . . 6
RANDOM SELECTION  . . 3,8
REP,REPEAT	. . . 2,4,6,10
RESTART		. . . 1
RESTS		. . . 4,5,15
RD(RAN. DEV.)   . . . 3
RR(RAN. RESTS)  . . . 3